GitHub | 您所在的位置:网站首页 › python import android › GitHub |
android-auto-play-opencv
OpenCV の画像認識を使って、Android を自動操作するライブラリです。 Android を操作する時に Android Debug Bridge (adb) を使うので、マウスカーソルが奪われません。 NoxPlayer を操作することも出来ます。 Readmehttps://noitalog.tokyo/android-auto-play-opencv/ Installation ライブラリのインストール pip install android-auto-play-opencv このライブラリを使うには、Android SDK Platform-Tools に含まれる adb.exe が必要です。 How to use # This Python file uses the following encoding: utf-8 # pip install android-auto-play-opencv import android_auto_play_opencv as am adbpath = '..\\platform-tools\\' def main(): aapo = am.AapoManager(adbpath) while True: # 画面キャプチャ aapo.screencap() # 早送りボタンは常にタップ if aapo.touchImg('./umamusume/hayaokuri.png'): # タップ出来たら待機 aapo.sleep(1) # Google Playダイアログが出たら、キャンセルの位置をタップ elif aapo.chkImg('./umamusume/google-play.png'): aapo.touchPos(135, 630) aapo.sleep(1) if __name__ == '__main__': main() 完成品 ウマ娘自動リセマラ周回 Reference startアプリを起動する。 # FGOを起動する. aapo.start('com.aniplex.fategrandorder/jp.delightworks.Fgo.player.AndroidPlugin') endアプリを終了する。 # FGOを終了する. aapo.end('com.aniplex.fategrandorder') sleep処理を待機させる。 # 5秒待機. aapo.sleep(5) screencapAndroid の画面をキャプチャする。 # 画面キャプチャ aapo.screencap() chkImgscreencap で取得したスクリーンショットに、テンプレート画像があるか確認します。タップはしません。 if aapo.chkImg('./template/stage_clear.png'): # あった時の処理. pass chkImg2screencap で取得したスクリーンショットに、テンプレート画像があるか確認します。タップはしません。見つけた座標も返してくれます。 # 古龍の心臓 が見つかったら位置を戻す。 result, x, y = aapo.chkImg2('./template/koryunosinzo.png') print('result=' + str(result) + ', x=' + str(x) + ', y=' + str(y)) if result: # 見つかった位置から指定ピクセルズラしてロングタップ(5秒) aapo.longTouchPos(x+50, y+50, 5000)引数_multiをTrueにすると、複数の結果を返してくれます。 ret, poss = aapo.chkImg2('tenpure.png',_multi = True) if ret: for i in range(len(poss)): pos = poss[i] print(f'X={pos[0]}, Y={pos[1]}') pass pass touchImgscreencap で取得したスクリーンショットに、テンプレート画像があればタップします。タップ結果を返してくれます。 aapo.touchImg('./template/stage_clear.png') touchPos指定位置をタップします。 # X=750、Y=400 の位置をタップする. aapo.touchPos(750, 400)第3引数を指定すると、ロングタップします。 # X=750、Y=400 の位置を5秒間タップする. aapo.longTouchPos(750, 400, 5000) swipeTouchPos指定位置をスワイプします。 # X=750、Y=800 から、X=750、Y=400 まで、1秒かけてスワイプする. aapo.swipeTouchPos(750, 800, 750, 400, 1000) inputtext文字を入力します。 # abc を入力する. aapo.inputtext('abc') inputkeyeventHOMEキーやバックキーを送ります。 # ホームキーを押す. aapo.inputkeyevent(3) # バックキーを押す. aapo.inputkeyevent(4) inputkeyeventscreencap で取得したスクリーンショットを保存します。 # キャプチャ画像を保存 aapo.imgSave('screenshot.png') # 現在の日時でキャプチャ画像を保存 aapo.imgSave('img/screenshot_' + datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.png') # ↑をする場合「import datetime」をファイルの先頭に書くこと。 デバイス選択複数の端末で同時実行できます。 import inquirer # pip install inquirer aapo = am.AapoManager('C:\\Program Files\\Nox\\bin\\') devicesselect = [ inquirer.List( "device", message="デバイスを選択して下さい。", choices=aapo.adbl.devices ) ] selected = inquirer.prompt(devicesselect) aapo.adbl.setdevice(selected['device']) aapo.screencap() |
CopyRight 2018-2019 实验室设备网 版权所有 |